Be more careful when checking for ButtonRelease events that end implicit
authorMatthias Clasen <mclasen@redhat.com>
Fri, 16 Feb 2007 04:01:50 +0000 (04:01 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 16 Feb 2007 04:01:50 +0000 (04:01 +0000)
2007-02-15  Matthias Clasen  <mclasen@redhat.com>

        * gdk/x11/gdmain-x11.c (_gdk_xgrab_check_button_event): Be more
        careful when checking for ButtonRelease events that end implicit
        grabs.  (#386618, Christof Krüger)

svn path=/trunk/; revision=17304

ChangeLog
gdk/x11/gdkmain-x11.c

index 266a55335622a78b5a79a8042b6c84b44ecb19b1..68ac0c33351d6ae542cec96056940233c09077a6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-15  Matthias Clasen  <mclasen@redhat.com>
+
+       * gdk/x11/gdmain-x11.c (_gdk_xgrab_check_button_event): Be more
+       careful when checking for ButtonRelease events that end implicit
+       grabs.  (#386618, Christof Krüger)
+
 2007-02-15  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtktextbtree.c (_gtk_text_btree_delete): Free the lines
index 36b51ec2425daff976582e5fd801c75cfd3acdce..60746458de1f405ddfbae39f98bf0186d95b8a25 100644 (file)
@@ -504,6 +504,12 @@ _gdk_xgrab_check_destroy (GdkWindow *window)
     }
 }
 
+#define GDK_ANY_BUTTON_MASK (GDK_BUTTON1_MASK | \
+                             GDK_BUTTON2_MASK | \
+                             GDK_BUTTON3_MASK | \
+                             GDK_BUTTON4_MASK | \
+                             GDK_BUTTON5_MASK)
+
 /**
  * _gdk_xgrab_check_button_event:
  * @window: a #GdkWindow
@@ -533,7 +539,7 @@ _gdk_xgrab_check_button_event (GdkWindow *window,
     case ButtonRelease:
       if (display_x11->pointer_xgrab_window &&
          display_x11->pointer_xgrab_implicit &&
-         (xevent->xbutton.state & ~(GDK_BUTTON1_MASK << (xevent->xbutton.button - 1))) == 0)
+         (xevent->xbutton.state & GDK_ANY_BUTTON_MASK & ~(GDK_BUTTON1_MASK << (xevent->xbutton.button - 1))) == 0)
        {
          display_x11->pointer_xgrab_window = NULL;
        }